Windows Presentation Foundation

Připojené vlastnosti

GUI prvky ve WPF většinou nemají žádné vlastnosti určené pro umístění prvku na layoutu. Proto je potřeba umět tyto vlastnosti k těmto GUI prvkům připojit. Například layout Grid obsahuje dvojici připojených vlastností Grid.Row a Grid.Column. Tyto vlastnosti určí řádek a sloupec pro umístění GUI prvků. Tedy GUI prvek bude umístěn do buňky určené vlastností Row (řádek) a Column (sloupec).

Umístění GUI prvku Label pomocí připojených vlastností
<Label Grid.Row="0" Grid.Column="0" Content="Row=0 ; Column=0" FontSize="20"/>
Vlastnosti Grid.Row a Grid.Column umístí GUI prvek Label do buňky se souřadnicemi [0,0].

Připojená vlastnosti se dají také nastavit v code-behind. Pro připojení vlastnosti se použije název třídy a název připojované vlastnosti.

Připojení vlastnosti v C#
Button tlacitko = new Button();
tlacitko.Content = "Ok"

Grid.SetRow(tlacitko, 1);
Grid.SetColumn(tlacitko, 1);
         
gridUkazka.Children.Add(tlacitko);

Metody SetRow a SetColumn nastaví hodnoty připojených vlastností pro objekt tlacitko. V tomto případě jsou hodnoty nastaveny na 1 a 1. Což značí, že tlačítko bude umístěnou ve druhém sloupci a druhém řádku. Tyto metody jsou volány pomocí jména třídy a názvu metody (statické metody).

Metody sloužící pro nastavení připojených vlastností mají většinou stejnou syntaxi. Nejdříve je uvedeno slovo Set následované jménem vlastnosti. Například Canvas.Top bude v C# zapsáno Canvas.SetTop(tlacitko, 100). Na Obrázku 7 je zobrazen způsob jakým budou zobrazovány připojené vlastnosti v diagramu tříd.

Diagram tříd se zápisem připojených vlastností
Obrázek 7 Diagram tříd se zápisem připojených vlastností [zdroj: vlastní]

Element Canvas nastavuje pozici elementu Button prostřednictvím připojených vlastností Top a Left. Elementy jsou do elementu Canvas vkládány prostřednictvím vlastnosti Children. Připojené vlastnosti se špatně zobrazují. Element Button není opravdovým vlastníkem těchto vlastností. Připojené vlastnosti má na starosti systém WPF.

Ukázkové řešení: XAML/PripojeneVlastnosti